<?php
class InterfazHelper extends AppHelper 
{
	var $helpers = array('Html', 'Javascript', 'Form','Ajax','Session','Json','Vista');
	//var $Html = null;
	//var $Javascript = null;
	//var $Ajax = null;




//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
  Funcion fechatime
  Esta Funcion recibe como parametros:
  $fecha: fecha en formato 'YYYY-MM-DD HH:MI:SS'
  $tipo: hora o fecha F, H
	Ejemplo:
			echo $this->Interfaz->fechatime('YYYY-MM-DD HH:MI:SS');
			echo $this->Interfaz->fechatime('YYYY-MM-DD HH:MI:SS','H');
**/
function fechatime($fecha=null,$tipo=null){

$tipo=strtoupper($tipo);

if($tipo==null){
$val=explode(' ',$fecha);
$value=explode('-',$val[0]);
 if(isset($value[2]) && isset($value[1]) && isset($value[0])){
  $hora=explode('.',$val[1]);
  $hora=explode(':',$hora[0]); 
if($hora[0]>12){$hora[0]=($hora[0]-12); $ampm='PM';}
else if($hora[0]==12) {$hora[0]==$hora[0]; $ampm='M';}
else {$hora[0]=$hora[0]; $ampm='AM';}
$ho=$this->item($hora[0],2).':'.$hora[1].':'.$hora[2].' '.$ampm;

  $value=$value[2].'-'.$value[1].'-'.$value[0]. ' - '.$ho;
}
}else if($tipo=='H'){
$val=explode(' ',$fecha);
$value=explode('-',$val[0]);
  $hora=explode('.',$val[1]); 
  $value=$hora[0];


}else if($tipo=='F'){
$val=explode(' ',$fecha);
$value=explode('-',$val[0]);
 if(isset($value[2]) && isset($value[1]) && isset($value[0])){
  $value=$value[2].'-'.$value[1].'-'.$value[0];
}

}else{
$value='ERROR';
}

return $value;

}

function botones($nuevo=array(),$filtro=array(),$pdf=array(),$exel=array(),$cal=array()){

//echo $nuevo['url'];

$mktime=mktime(date('his'));
$carg=$mktime;

$atrib='cursor:pointer; border: 0;height:16px; color:gray;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
$atribhover='cursor:pointer; border: 0;height:18px; color:red;top:0;';
$class='x-btn-default-small x-noicon x-btn-noicon x-btn-default-small-noicon x-btn-center';
//class='x-toolbar-item x-btn-default-small x-focus x-btn-focus x-btn-default-small-focus x-over x-btn-over x-btn-default-small-over over';
$ruta='../../img/iconos/icons/botonesmicro/';


echo '
<style type="text/css">';

if(isset($nuevo['url'])){
$atribnuevo='cursor:pointer; border: 0;height:16px; color:gray;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
echo '
#buttonnuevolayoutinputzxc{'.$atribnuevo.'background: url(\''.$ruta.'1364925873_document-new.png\') no-repeat;}
#buttonnuevolayoutinputzxc:hover{'.$atribhover.';background: url(\''.$ruta.'1364925869_tests.png\') no-repeat;}';
}
else
{
$atribnuevo='cursor:url(\''.$ruta.'stock_not.png\'),url(\''.$ruta.'stock_not.png\'),auto;border: 0;height:16px; color:#BDBDBD;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
echo '#buttonnuevolayoutinputzxc{'.$atribnuevo.'background: url(\''.$ruta.'stock_not.png\') no-repeat;}';
}


if(isset($filtro['url'])){
$atribfiltro='cursor:pointer; border: 0;height:16px; color:gray;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
echo '
#buttonfiltrolayoutinputzxc{'.$atrib.';background: url(\''.$ruta.'1364926098_old-edit-find.png\') no-repeat;}
#buttonfiltrolayoutinputzxc:hover{'.$atribhover.'background: url(\''.$ruta.'1364926098_old-edit-find.png\') no-repeat;}';
}
else
{
$atribfiltro='cursor:url(\''.$ruta.'stock_not.png\'),url(\''.$ruta.'stock_not.png\'),auto;border: 0;height:16px; color:#BDBDBD;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
echo '#buttonfiltrolayoutinputzxc{'.$atribfiltro.';background: url(\''.$ruta.'stock_not.png\') no-repeat;}';
}


if(isset($pdf['url'])){
echo '
#buttonpdflayoutinputzxc{'.$atrib.'background: url(\''.$ruta.'1364925864_pdf.png\') no-repeat;}
#buttonpdflayoutinputzxc:hover{'.$atribhover.'background: url(\''.$ruta.'1364925860_ACP_PDF 2_file_document.png\') no-repeat;}';
}
else
{
$atribpdf='cursor:url(\''.$ruta.'stock_not.png\'),url(\''.$ruta.'stock_not.png\'),auto;border: 0;height:16px; color:#BDBDBD;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
echo '#buttonpdflayoutinputzxc{'.$atribpdf.';background: url(\''.$ruta.'stock_not.png\') no-repeat;}';
}
if(isset($exel['url'])){
echo '
#buttonexellayoutinputzxc{'.$atrib.'background: url(\''.$ruta.'1364925880_application-vnd.ms-excel.png\') no-repeat;}
#buttonexellayoutinputzxc:hover{'.$atribhover.'background: url(\''.$ruta.'1364925880_application-vnd.ms-excel.png\') no-repeat;}';
}
else
{
$atribexel='cursor:url(\''.$ruta.'stock_not.png\'),url(\''.$ruta.'stock_not.png\'),auto;border: 0;height:16px; color:#BDBDBD;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
echo '#buttonexellayoutinputzxc{'.$atribexel.';background: url(\''.$ruta.'stock_not.png\') no-repeat;}';
}

if(isset($cal['url'])){
echo '
#buttoncallayoutinputzxc{'.$atrib.'background: url(\''.$ruta.'1364925877_application-vnd.ms-word.png\') no-repeat;}
#buttoncallayoutinputzxc:hover{'.$atribhover.'background: url(\''.$ruta.'1364925877_application-vnd.ms-word.png\') no-repeat;}';
}
else
{
$atribcal='cursor:url(\''.$ruta.'stock_not.png\'),url(\''.$ruta.'stock_not.png\'),auto;border: 0;height:16px; color:#BDBDBD;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
echo '#buttoncallayoutinputzxc{'.$atribcal.';background: url(\''.$ruta.'stock_not.png\') no-repeat;}';
}

echo '
</style>

';

echo '<script type="text/javascript">';

$divcsdde='tabs_1';
if(isset($nuevo['update'])){$iddiva=$nuevo['update'];}else $iddiva=$divcsdde;
if(isset($nuevo['url']))
{
	if(isset($nuevo['permiso']) && $nuevo['permiso']==1)
	{
		$on05='onclick=\"'.$this->ajax($nuevo['url'],$iddiva).'\"';
	}
	else
	{
            //$on05='onclick=\"'.$this->ajax(PRINCIPAL."/permiso/".DOCULTO,DOCULTO).'\"';
            $on05='onclick=\"sin_permiso();\"';
	}
	
	$disabbleda='';
}
else 
{
	$on05='';
	$disabbleda='disabled';
}


echo 'document.getElementById("buttonnuevolayout").innerHTML = "<div class=\"'.$class.'\"><input id=\"buttonnuevolayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Nuevo\" '.$on05.' '.$disabbleda.'/></div>";';


if(isset($filtro['update'])){$iddivs=$filtro['update'];}else $iddivs=$divcsdde;
if(isset($filtro['url']))
{
	$disabbledb='';
	if(isset($filtro['permiso']) && $filtro['permiso']==1)
	{
		$on04='onclick=\"'.$this->ajax($filtro['url'],$iddivs).'\"';
	}
	else
	{
		//$on04='onclick=\"'.$this->ajax($filtro['url'],$iddiva).'\"';
		//$on04='onclick=\"'.$this->ajax(PRINCIPAL."/permiso/".DOCULTO,DOCULTO).'\"';
             $on04='onclick=\"sin_permiso();\"';
	}
}
else
{
	$on04='';
	$disabbledb='disabled';
}

echo 'document.getElementById("buttonfiltrolayout").innerHTML = "<div class=\"'.$class.'\"><input id=\"buttonfiltrolayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Filtro\" '.$on04.' '.$disabbledb.'/></div>";';


if(isset($pdf['update']) and $pdf['update']=='descargar')
{
	$iddivd=$pdf['update'];
	$pdfurl=explode('/',$pdf['url']);
	$pdfurlfinal=$pdfurl[0].'/'.$pdfurl[1].'/'.$pdf['update'];
	for($i=2; $i<count($pdfurl); $i++)
	{
		$pdfurlfinal.='/'.$pdfurl[$i];
	}
	if(isset($pdf['url']))
	{
		if(isset($pdf['permiso']) && $pdf['permiso']==1)
		{
			$on03='onClick=\"window.open(\''.$pdfurlfinal.'\',\'\',\'900,600\'); return false;\"';
		}
		else
		{
			//$on03='onClick=\"window.open(\''.$pdfurlfinal.'\',\'\',\'900,600\'); return false;\"';
                        $on03='onclick=\"sin_permiso();\"';
			//$on03='onclick=\"'.$this->ajax(PRINCIPAL."/permiso/".DOCULTO,DOCULTO).'\"';
		}		
		$disabbledc='';
	}
	else
	{
		$on03='';$disabbledc='disabled';
	}
	echo 'document.getElementById("buttonpdflayout").innerHTML = "<div class=\"'.$class.'\"><input id=\"buttonpdflayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Pdf\" '.$on03.' '.$disabbledc.'/></div>";';
}
else if(isset($pdf['update']))
{
	$pdfurl=explode('/',$pdf['url']);
	$pdfurlfinal=$pdfurl[0].'/'.$pdfurl[1].'/'.$pdf['update'];
	for($i=2; $i<count($pdfurl); $i++)
	{
		$pdfurlfinal.='/'.$pdfurl[$i];
	}
	if(isset($pdf['update'])){$iddivx=$pdf['update'];}else $iddivx=$divcsdde;
	if(isset($pdf['url']))
	{
		if(isset($pdf['permiso']) && $pdf['permiso']==1)
		{
			$on03='onclick=\"'.$this->ajax($pdfurlfinal,$iddivx).'\"';
		}
		else
		{
		//	$on03='onclick=\"'.$this->ajax($pdfurlfinal,$iddivx).'\"';
			//$on03='onclick=\"'.$this->ajax(PRINCIPAL."/permiso/".DOCULTO,DOCULTO).'\"';
                        $on03='onclick=\"sin_permiso();\"';
		}		
		$disabbledc='';
	}
	else
	{
		$on03='';$disabbledc='disabled';
	}
	echo 'document.getElementById("buttonpdflayout").innerHTML = "<div class=\"'.$class.'\"><input id=\"buttonpdflayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Pdf\" '.$on03.' '.$disabbledc.'/></div>";';
}
else
{
	$on03='';$disabbledc='disabled';
	echo 'document.getElementById("buttonpdflayout").innerHTML = "<div class=\"'.$class.'\"><input id=\"buttonpdflayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Pdf\" '.$on03.' '.$disabbledc.'/></div>";';
}

if(isset($exel['update']) and $exel['update']=='descargar')
{
	$iddivd=$exel['update'];
	if(isset($exel['url']))
	{
		if(isset($exel['permiso']) && $exel['permiso']==1)
		{
			$on02='onClick=\"window.open(\''.$exel['url'].'\',\'\',\'900,600\'); return false;\"';
		}
		else
		{
		//	$on02='onClick=\"window.open(\''.$exel['url'].'\',\'\',\'900,600\'); return false;\"';
			//$on02='onclick=\"'.$this->ajax(PRINCIPAL."/permiso/".DOCULTO,DOCULTO).'\"';
                        $on02='onclick=\"sin_permiso();\"';
		}		
		$disabbledd='';
	}
	else
	{
		$on02='';$disabbledd='disabled';
	}
	echo 'document.getElementById("buttonexellayout").innerHTML = "<div class=\"'.$class.'\"><input id=\"buttonexellayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Excel\" '.$on02.' '.$disabbledd.'/></div>";';
}
else if(isset($exel['update']))
{
	if(isset($exel['update'])){$iddivd=$exel['update'];}else $iddivd=$divcsdde;
	if(isset($exel['url']))
	{
		if(isset($exel['permiso']) && $exel['permiso']==1)
		{
			$on02='onclick=\"'.$this->ajax($exel['url'],$iddivd).'\"';
		}
		else
		{
		//	$on02='onclick=\"'.$this->ajax($exel['url'],$iddivd).'\"';
			//$on02='onclick=\"'.$this->ajax(PRINCIPAL."/permiso/".DOCULTO,DOCULTO).'\"';
                    $on02='onclick=\"sin_permiso();\"';
		}	
		$disabbledd='';
	}
	else
	{
		$on02='';$disabbledd='disabled';
	}
	echo 'document.getElementById("buttonexellayout").innerHTML = "<div class=\"'.$class.'\"><input id=\"buttonexellayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Excel\" '.$on02.' '.$disabbledd.'/></div>";';
}
else
{
	$on02='';$disabbledd='disabled';
	echo 'document.getElementById("buttonexellayout").innerHTML = "<div class=\"'.$class.'\"><input id=\"buttonexellayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Excel\" '.$on02.' '.$disabbledd.'/></div>";';
}
//;
if(isset($cal['update'])){$iddivf=$cal['update'];}else $iddivf=$divcsdde;
if(isset($cal['update']) and $cal['update']=='descargar')
{
	$iddivd=$cal['update'];
	if(isset($cal['url']))
	{
		if(isset($cal['permiso']) && $cal['permiso']==1)
		{
			$on01='onClick=\"window.open(\''.$cal['url'].'\',\'\',\'900,600\'); return false;\"';
		}
		else
		{
		//	$on01='onClick=\"window.open(\''.$cal['url'].'\',\'\',\'900,600\'); return false;\"';
			//$on01='onclick=\"'.$this->ajax(PRINCIPAL."/permiso/".DOCULTO,DOCULTO).'\"';
                        $on01='onclick=\"sin_permiso();\"';
		}		
		$disabbledd='';
	}
	else
	{
		$on01='';$disabbledd='disabled';
	}
	echo 'document.getElementById("buttoncallayout").innerHTML = "<div class=\"'.$class.'\"><input id=\"buttoncallayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Cal\" '.$on01.' '.$disabbledd.'/></div>";';
}
else if(isset($cal['update']))
{
	if(isset($cal['update'])){$iddivd=$cal['update'];}else $iddivd=$divcsdde;
	if(isset($cal['url']))
	{
		if(isset($cal['permiso']) && $cal['permiso']==1)
		{
			$on01='onclick=\"'.$this->ajax($cal['url'],$iddivd).'\"';
		}
		else
		{
		//	$on01='onclick=\"'.$this->ajax($cal['url'],$iddivd).'\"';
			//$on01='onclick=\"'.$this->ajax(PRINCIPAL."/permiso/".DOCULTO,DOCULTO).'\"';
                        $on01='onclick=\"sin_permiso();\"';
		}	
		$disabbledd='';
	}
	else
	{
		$on01='';$disabbledd='disabled';
	}
	echo 'document.getElementById("buttoncallayout").innerHTML = "<div class=\"'.$class.'\"><input id=\"buttoncallayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Cal\" '.$on01.' '.$disabbledd.'/></div>";';
}
else
{
	$on01='';$disabbledd='disabled';
	echo 'document.getElementById("buttoncallayout").innerHTML = "<div class=\"'.$class.'\"><input id=\"buttoncallayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Cal\" '.$on01.' '.$disabbledd.'/></div>";';
}
echo '</script>';
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion para convertir a formato de moneda
Esta Funcion recibe como parametros:
$numero: numero a convertir
$cant:  cantidad de decimales por defecto 2
$separadormiles: separador del formato en miles ejem: 1,263.00 - 1.263,00 por defecto "."
$separadordecimales: separador del formato en miles ejem: 1,263.00 - 1.263,00 por defecto ","
Ejemplo:
        echo $this->Interfaz->miles(123456,2,'.'); // devuelve  123.456,00
        echo $this->Interfaz->miles(123456,2,'',','); // devuelve  123456,00
        echo $this->Interfaz->miles(123456); // devuelve  123.456,00
        echo $this->Interfaz->miles(123456,2,',','.'); // devuelve  123,456.00

**/
function miles($numero,$cant=2,$s2='.',$s1=',')
{
	//if($separador=='.'){$s1=',';$s2='.';}
	//else{$s1='.';$s2=',';}
		return @number_format($numero,$cant,$s1,$s2);
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion para convertir a formato de Postgres un Formato Moneda
Esta Funcion recibe como parametros:
$numero: numero a convertir en formato (2.165,48) o (2165,48)

Ejemplo:
	echo $this->Interfaz->miles_postgres(1.234,56); // devuelve  1234.56
**/
function miles_postgres($numero)
{
	return str_replace(',', '.', str_replace('.', '', $numero));
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion para mostrar imagenes al igual que <img>
Esta Funcion recibe como parametros:
$imagen: ruta de la imagen
$width: tama&ntildeo de la imagen en width 
$height: tama&ntildeo de la imagen en height
$id: identificador unico para el elemento de no existir se toma en nombre de la imagen con la ruta
$title: titulo de la imagen
$otros: array para otros atributos validos para una imagen, ejemplo onclick, onfocus...
Ejemplo:
        echo $this->Interfaz->img('/img/agropatria.png','200','200',null,'title');
				echo $this->Interfaz->img('/img/agropatria.png','200','200',null,'title',array('Onclick'=>'alert("holamundo");'));

**/
function img($imagen,$id=null,$title=null,$width='20',$height='20',$otros=array())
{
   if(!isset($id)) {
		$id=str_replace('/','',$imagen);
		$id=str_replace('.','',$id);
   }

  if(count($otros)>0){
	$otros['id']=$id;
	$otros['align']='absmiddle';
	$otros['alt']=$title;
	$otros['title']=$title;
	$otros['border']='0';
	$otros['width']=$width;
	$otros['height']=$height;
	return $this->Html->image($imagen, $otros);
  }
	else  return $this->Html->image($imagen, array('id'=>$id, 'align'=>'absmiddle','alt' => $title, 'title' =>$title, 'border'=>'0', 'width' => $width, 'height' => $height));
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * Funcion para complementar numero en listados ejemplo 1 -> 01
 * Esta Funcion recibe como parametros:
 * $entero: numero a completar
 * $largo:  cantidad de digitos a visualizar
 * $mascara:  caracter a utilizar en la completacion por defecto(0)
 * $aliniacion:  donde se va a visializar la completacion (I=>Izquierda,D=Derecha,A=Ambos)
 * Devuelve el numero ingresado con ceros a la izquierda dependiendo del
 * largo deseado de la cadena de salida.
 *
 * Ejemplo:
 *     echo $this->Interfaz->item(12,4);
 *     su salida sera 0012
 *     echo $this->Interfaz->item(12,4,'*','D');
 *     su salida sera 12**
**/ 
function item($entero=0, $largo=2,$mascara="0",$aliniacion="I"){
    // Limpiamos por si se encontraran errores de tipo en las variables
    /*$entero = (int)$entero;
    $largo = (int)$largo;
    $relleno = '';
    
    if (strlen($entero) < $largo) {
        $relleno = str_repeat('0', $largo - strlen($entero));
    }
    return $relleno . $entero;
    */
    if(strtoupper($aliniacion)=='D') $ali=1;
    else if(strtoupper($aliniacion)=='A') $ali=2;
    else $ali=0; 
    return str_pad($entero, $largo,$mascara,$ali);
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * Funcion para ocultar un valor para ciertos elementos
 * Ejemplo: 12 = 'VmtaYVUxTnNRbEpRVkRBOQ=='
 *        echo $this->Interfaz->id(12); 
**/
function id($id) {
	$id = base64_encode($id);
	$id = base64_encode($id);
	$id = base64_encode($id);
	$id = base64_encode($id);
	$id = base64_encode($id);
	return $id; 
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
  Funcion celendario
  Esta Funcion recibe como parametros:
	$campo1: donde se monta el value resultante
	$campo: quien hace el llamado del calendario
	$min: valor minimo a mostrar de fechas
	$max: valor maximo a mostrar de fechas
	$extra: id de un campo que almacena la fecha minima de incicio
	$funcion: funcion javascritp en caso de ser necesaria
   Ejemplo:
      echo $this->For->calendario('fecha_n','','01-01-1900',date('d-m-Y'),"alert('holamundo');");
      echo $this->For->calendario('fecha_n','fecha_n');
**/
function calendario($campo1='vacio',$campo='vacio',$min='vacio',$max='vacio',$funcion=''){
	if(empty($funcion))$funcion='';
	$id='calendar'.mktime(date("i")).'_js';
	if($campo=='' or $campo== NULL or $campo=='vacio') $campo=$campo1.'calendariolevantar';
	if($campo1=='vacio' or $campo1=='' or $campo1==null)$campo1=$campo;
	if($min=='' or $min== NULL or $min=='vacio')$min='01-01-1920';
	if($max=='' or $max== NULL or $max=='vacio')$max=date('d-m-Y');
	$min=explode('-',$min);$minimo=$min[2].$min[1].$min[0];
	$max=explode('-',$max);$maximo=$max[2].$max[1].$max[0];
	$valor="";
	$valor.="
	<div id='div_calendario'style='display:none;' align='center'>
	<script type='text/javascript'>
		var DISABLED_DATES".$campo." = {
		    19001212: true,
		    19001213: true,
		    19001211: true,
		    19001215: true
		};
		var DATE_INFO".$campo." = {
		  20090507: { klass: 'highlight', tooltip: 'MENSAJE UNO' },
		  20090508: { klass: 'highlight', tooltip: 'MENSAJE NUMERO 2' }
		};
		var CAKE_JSCAL".$campo." = Calendar.setup({
        	//cont: 'f_rangeStart', // DEJAR CARGADO EN UN DIV
			animation: true,   // ANIMACION 
			bottomBar: false,  // MARCAR BOTON DE HOY
		    weekNumbers: true, // NUMERO DE SEMANA
			min: ".$minimo.",  // FECHA MINIMA
    		max: ".$maximo.",  // FECHA MAXIMA
			name: '".$id."',
			id: '".$id."',
          	//selectionType: Calendar.SEL_MULTIPLE, //SELECCION MULTIPLE
          	// showTime: 12, // MUESTRA LA HORA EN FORMATO DE HORA 12 24
		    //	dateInfo : getDateInfo, // MUY BUENA INFORMACION EN LOS DIAS DEL ARRAY DATE_INFO Y LOS DE IF()
			disabled : function(date) {       
				//if (date.getDay() == 3) {return true;} else {return false;}    // DIAS DESHABILITADOS POR DIA DE SEMANA 
				date = Calendar.dateToInt(date); return date in DISABLED_DATES".$campo.";// DIAS DESHABILITADOS DEL ARRAY DISABLED_DATES 
 		    },// DIAS DESHABILITADOS DEL ARRAY DISABLED_DATES 
			onSelect   : function() { this.hide(); ".$funcion." } // QUITA EL CALENDARIO CON UN CLICK
		})
	    //   CAKE_JSCAL".$campo.".args.min = Calendar.intToDate('20130201'); //CARGA VALOR MINIMO PERO CON LA ACCION
	    //   CAKE_JSCAL".$campo.".args.max = Calendar.intToDate('20130210'); //CARGA VALOR MAXIMO PERO CON LA ACCION
	    //   CAKE_JSCAL".$campo.".manageFields('f_rangeStart_trigger', 'f_rangeStart', '%d-%m-%Y');
	  	CAKE_JSCAL".$campo.".manageFields('".$campo."', '".$campo1."', '%d-%m-%Y');
		
		function getDateInfo(date, wantsClassName) {
	  		var as_number = Calendar.dateToInt(date);
			if (String(as_number).indexOf('0521') == 4) { return { klass: 'birthday', tooltip: 'MENSAJE ESPECIFICO 1' };}//MSN LOS 0521
			if (String(as_number).indexOf('0519') == 4) { return { klass: 'birthday', tooltip: 'MENSAJE ESPECIFICO 2' };}//MSN LOS 0519
			if (as_number >= 20090522 && as_number <= 20090524)//MSM DESDE  20090522 AL 20090524
			return {
			      klass   : 'highlight2',
			      tooltip : '<div style=\'text-align: center\'>%d-%m-%Y (%A)' +
				'<br>MENSAJE EN CALENDARIO</div>'
		    };
	  		return DATE_INFO".$campo."[as_number];
		};
    </script>
	</div>
";

echo $valor;

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
  Funcion font
  Esta Funcion recibe como parametros:
  $texto: texto a cambiar
  $color: color en hexadecimal
  $size: tamaño de la fuente
	Ejemplo:
			echo $this->Interfaz->font('holamundo');
			echo $this->Interfaz->font('holamundo','#FFFFFF','18px');
**/
function font($texto='', $color='#545454',$size='12px'){
	return $valor="<font color='$color' style='font-size:$size;'>$texto</font>";
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
  Funcion fecha
  Esta Funcion recibe como parametros:
  $fecha: fecha en formato 'Y-m-d'
  $size: tamaño de la fuente
	Ejemplo:
			echo $this->Interfaz->fecha(date('Y-m-d'));
			echo $this->Interfaz->fecha(date('Y-m-d'),'18px');
**/
function fecha($fecha=null,$size=null){
	$value=explode('-',$fecha);
	if(isset($value[2]) && isset($value[1]) && isset($value[0])) $value=$value[2].'-'.$value[1].'-'.$value[0];
	else $value='';
	if($size) return $value="<font color=\'#545454\' style=\'font-size:$size;\'>$value</font>";
	else return $value;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
  Funcion input
  Esta Funcion recibe como parametros:
$nombre: nombre del input 
$tamanio: size del campo, nota cuando es tipo password colocar mucho mas grande
$tipo: tipo de validacion ('texto','direccion','todo','numerico','clave','celular','telefono','correo','moneda','rif','cedula','select','fecha','textarea')
$class: css (inputn, selectn, inputonly, selectonly)
$minimo: valor minimo escrito para el campo "0"
$maximo=10
$value: valor por defecto en el campo
$readonly: readonly valores 0 y 1 para su uso
$requerido: si es 1 este campo es requerido
$texto:ayuda Json texto descriptivo
$placeholder= mensaje que aparecera en el campo
$otros=arreglo de otros posibles atributos por ejemplo array('OnClick'=>"alert('holamundo')")
Nota el evente onkeyup no puede ser utilizado en ningun caso
para los tipo cedula o rif el evento onmouseout no puede ser utilizado
para los tipo fecha el evento onfocus no puede ser utilizado
	Ejemplo:
      echo $this->Interfaz->input('nombre',12,'texto','inputn',0,10,'value',0,1,'ayuda del campo nombre','holamundo',array('OnClick'=>"alert('holamundo')"));
		  echo $this->Interfaz->input('nombre',12,'telefono','inputn',0,12,'value',0,1,'yuda del campo nombre','holamundo');
**/
function input($nombre=null,$tamanio,$tipo,$class,$minimo=0,$maximo=10,$value=null,$readonly=0,$requerido=1,$texto='nada',$placeholder='',$otros=array(),$pre='nada')
{
	if(!isset($nombre))$nombre='nombre_campo';
	if($nombre!=null or $nombre!='nombre_campo')
	{
		if($readonly===1) $readonly=true;else $readonly=false;
  		if(count($otros)>0)
		{
			$otros['id']=$nombre;
			$otros['value']=$value;
			$otros['readonly']=$readonly;
			$otros['label']=false;
			$otros['div']=false;
			$otros['error']=false;
			$otros['size']=$tamanio;
			$otros['class']=$class;
			$otros['maxlength']=$maximo;
			$otros['placeholder']=$placeholder;
			$otros['onkeyup']="return validate(event,this.value,'$tipo','$nombre','$pre');";
		}

		$valor="";
		if($texto!='nada') $this->Json->tipsayuda($nombre,$texto);
		if($pre=='nada') $mids=$nombre."_em";
		else $mids=$nombre.$pre."_em";

		if($tipo=='cedula')
		{
			if(count($otros)>0)
			{
				$otros['type']='text';
				$otros['onmouseout']="return ordenar(event,this.value,'$tipo','$nombre','$pre');";
				$valor.=$this->Form->input($nombre,$otros);
			}
			else
			{
				$valor.=$this->Form->input($nombre,array('id'=>$nombre,'value'=>$value,'readonly'=>$readonly,'label'=>false,'type'=>'text','div'=>false,'error'=>false,'size'=>$tamanio,'class'=>$class,'maxlength'=>$maximo,'onkeyup'=>"return validate(event,this.value,'$tipo','$nombre','$pre');", 'placeholder'=>$placeholder,'onmouseout'=>"return ordenar(event,this.value,'$tipo','$nombre','$pre');"));
			}
		}
		else if($tipo=='clave')
		{
			if(count($otros)>0)
			{
				$otros['type']='password';
				$valor.=$this->Form->input($nombre,$otros);
			}
			else
			{
				$valor.=$this->Form->input($nombre,array('id'=>$nombre,'value'=>$value,'readonly'=>$readonly,'label'=>false,'type'=>'password','div'=>false,'error'=>false,'size'=>$tamanio,'class'=>$class,'maxlength'=>$maximo,'onkeyup'=>"return validate(event,this.value,'$tipo','$nombre','$pre');"));
			}
		}
		else if($tipo=='textarea')
		{
			if(count($otros)>0)
			{
				foreach ($otros as $key => $value) 
				{
					$opcion[$key]='';
					if($key!='size') $miarray[$key]=$value;
				}
				$miarray['class'] = $miarray['class']."textarea";
				if(!isset($miarray['rows']))$miarray['rows']=2;
				if(!isset($miarray['cols']))$miarray['cols']=50;
				$valor.=$this->Form->textarea($nombre, $miarray);
			}
			else
			{
				$valor.=$this->Form->textarea($nombre, array('id'=>$nombre,'value'=>$value,'readonly'=>$readonly,'label'=>false,'error'=>false,'rows' => '2', 'cols' => '50','class'=>$class.'textarea','maxlength'=>$maximo,'onkeyup'=>"return validate(event,this.value,'$tipo','$nombre','$pre');"));
			}
		}
		else if($tipo=='moneda')
		{
			if(count($otros)>0)
			{
				$otros['type']='text';
				$valor.=$this->Form->input($nombre,$otros);
			}
			else
			{
				if($placeholder=='')$placeholder='0,00';
				$valor.=$this->Form->input($nombre,array('id'=>$nombre,'value'=>$value,'readonly'=>$readonly,'label'=>false,'type'=>'text','div'=>false,'error'=>false,'size'=>$tamanio,'class'=>$class,'maxlength'=>$maximo,'onkeyup'=>"return validate(event,this.value,'$tipo','$nombre','$pre');", "placeholder"=>$placeholder));
			}
		}

		else if($tipo=='fecha')
		{
			if(isset($value) and $value!='')
			{
				$value=explode('-',$value); $value=$value[2].'-'.$value[1].'-'.$value[0];
			}
			if(count($otros)>0)
			{
				$otros['type']='text';
				$otros['maxlength']=10;
				$otros['onfocus']="return liacamposfn('$nombre','$pre');";
				$valor.=$this->Form->input($nombre,$otros).' <img id="calendariolevantar" src="/img/iconos/calendarios/calendario2.ico" border="0" align="absmiddle" style="cursor:pointer;">';
			}
			else
			{
				$valor.=$this->Form->input($nombre,array('id'=>$nombre,'value'=>$value,'readonly'=>$readonly,'label'=>false,'type'=>'text','div'=>false,'error'=>false,'size'=>$tamanio,'class'=>$class,'maxlength'=>10,'onkeyup'=>"return validate(event,this.value,'$tipo','$nombre','$pre');", 'placeholder'=>$placeholder,'onfocus'=>"return liacamposfn('$nombre','$pre');")).' <img id="'.$nombre.'calendariolevantar" src="/img/iconos/calendarios/calendario2.ico" border="0" align="absmiddle" style="cursor:pointer;">';
			}
		}
		else
		{
			if(count($otros)>0)
			{
				$otros['type']='text';
				$valor.=$this->Form->input($nombre,$otros);
			}
			else
			{
				$valor.=$this->Form->input($nombre,array('id'=>$nombre,'value'=>$value,'readonly'=>$readonly,'label'=>false,'type'=>'text','div'=>false,'error'=>false,'size'=>$tamanio,'class'=>$class,'maxlength'=>$maximo,'onkeyup'=>"return validate(event,this.value,'$tipo','$nombre','$pre');", "placeholder"=>$placeholder));
			}
		}
	}
	$em=$this->tipsrequerido($requerido,$nombre);
	$valor.="$em<span id='".$mids."'>&nbsp;</span>";
	return $valor;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
  Funcion select
  Esta Funcion recibe como parametros:
$nombre: nombre de la lista desplegable 
$tamanio: size del campo
$class: css (inputn, selectn, inputonly, selectonly)
$lista: lista de opciones de la lista desplegable es un arreglo de la siguiente forma $opciones=array('indice o valrque se quiere almacenar'=>'valor a mostrar')
$value=valor o elemento que estara seleccionado por defecto
$texto: ayuda Json texto descriptivo
$readonly: readonly valores 0 y 1 para su uso 
$requerido: si es 1 este campo es requerido
$otros=arreglo de otros posibles atributos por ejemplo array('OnClick'=>"alert('holamundo')")
Nota el evento onfocus no puede ser utilizado
	Ejemplo:
      $lista=array(1=>"dato1",2=>"dato2",3=>"dato3");
      echo $this->Interfaz->select('nombre',11,'selectn',$lista,'','dato2',0,1,array('OnChange'=>"alert('holamundo')"));
      echo $this->Interfaz->select('nombre',11,'selectn',$lista,'','dato1',0,1);
**/
function select($nombre=null,$tamanio,$class,$lista,$value,$texto='nada',$readonly,$requerido=1,$otros=array(),$pre='nada'){
	if($readonly===1) $readonly=true;else $readonly=false;
	$valor="";
	if($texto!='nada') $this->Json->tipsayuda($nombre,$texto);
	if($pre=='nada') $mids=$nombre."_em";
	else $mids=$nombre.$pre."_em";

	if($nombre!=null){

		if(count($otros)>0){
			$otros['id']=$nombre;
			$otros['value']=$value;
			$otros['class']=$class.' selectcolors';
			$otros['empty']= (!isset($otros['empty'])) ? "" : $otros['empty'];
			$otros['disabled']=$readonly;
			$otros['onfocus']="return validate(event,this.value,'select','$nombre','$pre');";
			$valor.=$this->Form->select($nombre, $lista,$otros);
	 	}
		else {
			$valor.=$this->Form->select($nombre, $lista,array('id' => $nombre,'empty' => '','value'=>$value,'class'=>$class.' selectcolors','disabled'=>$readonly,'onfocus'=>"return validate(event,this.value,'select','$nombre','$pre');"));
		}
	}
	$em=$this->tipsrequerido($requerido,$nombre);
	$valor.="$em<span id='".$mids."'>&nbsp;</span>";
	return $valor;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion filset
  Esta Funcion recibe como parametros:
$title: Titulo del FilSet o Marco
$br: Salto de lineas que habran entre el filset y el contenido del mismo
$border: 1 para indicar que el marco tiene borde 0 caso contrario
$color: color del Border
$head_img: 1 para indicar imagen estandar, 0 o null no muestra imagen y SRC "ruta de una imagen especifica"
$head_title: titulo en rojo de ser necesario ejemplo Paso 1/2, Paso 2/2 "limite superior derecho"
$width:tamaño de la imagen por defecto 120px
$height:tamaño de la imagen por defecto 50px
**/
function filset($title=null,$br=0, $border=0,$color='gray',$head_img=null,$head_title=null,$width='120px',$height='50px')
{
	if(isset($title))
	{
		$bx='';
        for($i=0; $i<$br; $i++){
        	$bx.='<br />'; 
        }
		if(!isset($head_img) or $head_img==0)$imagen='';
		else if($head_img==1)$imagen=$this->Html->image('agropatriahelper.png', array('border'=>'0', 'width'=>$width, 'height'=>$height, 'align'=>'absmiddle'));
		else $imagen=$this->Html->image($head_img, array('border'=>'0', 'width'=>$width, 'height'=>$height, 'align'=>'absmiddle'));
		if(!isset($border) or $border=='' or $border==null)$border=0;
		if(!isset($color) or $color=='' or $color==null)$color='gray';
		if(!isset($head_title) or $head_title=='' or $head_title==null)$head_title='';
		$valor="$bx <table border='".$border."' cellpadding='0' cellspacing='0' width='100%' align='center'>";
		if(isset($head_img) && $head_img>0){
			$valor.="
				<tr>
	 	  			<td align='left'>
				 		<table border='0' cellpadding='0' cellspacing='0' width='95%' align='center'>
						 	<tr>
						 	  	<td align='left' width='1px'>&nbsp;</td>
								<td align='left'>".$imagen."</td>
					 	  		<td align='left'> 	</td>
						 	  	<td align='right' valign='top'>
									<font color='red' size='5px' id='pasofuncionfilset'>&nbsp;".$head_title."</font>
								</td>
							</tr>
						</table>
					</td>
				</tr>";
		}
		$valor.="<tr>
		 	  		<td align='center'>  
	 	    			<fieldset class='fieldset_helper fieldset_helpercolorcake' style='border: 1px ".$color." solid; '>
		 	    			<legend align='left' class='legend_helper legend_helpercolorcake'  style='border: 1px ".$color." solid;'>&nbsp;&nbsp;&nbsp;".$title."&nbsp;&nbsp;&nbsp;</legend>";
	}
    else
    {
 		$valor="</td></tr></table><br /></fieldset>";
    }
	return $valor;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
  Funcion identificador
	Ejemplo:
      $mktime=$this->Interfaz->identificador(); devuelve algo asi 1343523452332
**/
function identificador(){
	return $mktime=mktime(date('his'));;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
  Funcion table
  Esta Funcion recibe como parametros:
$nombre: nombre de la tabla esto normalmente se pasa el mktime creado en la vista
Nota $nombre que igual a id="$nombre"
Nota de no recibir ningun paramentro cierra la tabla
	Ejemplo:
      echo $this->Interfaz->table($nombre); devuelve <table> + abritubos
      echo $this->Interfaz->table(); devuelve < /table>
**/
function table($nombre=null){
	if(isset($nombre) and $nombre!=''){
		echo "<table border='1' cellpadding='0' cellspacing='0' width='100%' align='center' style='border: #999999 1px solid;' id='".$nombre."'>";
	}
	else echo "</table>";
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
  Funcion tr
  Esta Funcion recibe como parametros:
$mktime: lo devuelto por identificador unico esto usado para los id
$color: color de fondo
$id: identificador unico del tr
$mayuscula: 1 coloca en mayuscula el texto, otro valor no hace nada
Nota de no recibir ningun paramentro cierra el tr
	Ejemplo:
      echo $this->Interfaz->tr($nombre); devuelve <tr> + abritubos
      echo $this->Interfaz->tr(); devuelve < /tr>
**/
function tr($mktime=null,$color=null,$id='',$mayuscula=0){
	if(isset($mktime) and $mktime!=''){
		if($id=='')$id='sin_id';
		if($color=='' or $color==null or !isset($color)){$color='#cccccc';$class='';}else{$class='lis_selec';}
		if($mayuscula==1)$mayus='text-transform: uppercase;';else $mayus='';
		echo "<tr bgcolor='$color' align='center' style='cursor:pointer; $mayus' id='".$id."' class='$class'>";
	}
	else echo "</tr>";
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
  Funcion td
  Esta Funcion recibe como parametros:
$texto: texto a colocar dentro del td
$busq: esta variable es utilizada por el buscador y corolea deacuerdo a la configuracion
$align: alineacion de del texto (l,r,c)
$size: tamaño del td
$id: indentificador del td normalmente asignado por $i, en caso de no existir queda asi "sin_id"
$numero: partida para cortar texto casi siempre es en cero
$cantidad: cantidad de texto a mostrar de ser mayor a este valor intectua la funcion leermas
$colspan: colspan del td
$rowspan: rowspan del td
Nota los td utilizan la etiqueta <font> esto para adaptar la vista al frameword
	Ejemplo:
      echo $this->Interfaz->td($nombre); devuelve <td> + abritubos + < /td>
**/
function td($texto='',$busq='',$align='',$width='',$id='',$numero=0,$cantidad=25,$colspan=1, $rowspan=1){
	if($id=='' or !isset($id) or $id==null)$id='sin_id';
	if($width=='' or !isset($width) or $width==null)$width='auto';
	if($align=='' or !isset($align) or $align==null)$align='left';
	else if($align=='l' or $align=='L' or $align=='left' or $align=='LEFT')$align='left';
	else if($align=='c' or $align=='C' or $align=='center' or $align=='CENTER')$align='center';
	else if($align=='r' or $align=='R' or $align=='rigth' or $align=='RIGHT')$align='rigth';
	else $align=$align;

	$texto=$this->colorear($busq,$texto);
	$size='12px';
	if(isset($numero) or $numero!='')
	$texto=$this->leermas($texto,$numero,$cantidad);
	echo "<td id='$id' width='$width' align='$align' valign='top' colspan='$colspan' rowspan='$rowspan'><font color='#545454' style='font-size:$size;' align='$align'>&nbsp;$texto&nbsp;</font></td>";
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
  Funcion colorear
  Esta Funcion recibe como parametros:
$busq: cadena devuelta por el buscador
$cadena: cadena donde se busca 

	Ejemplo:
      echo $this->Interfaz->colorear('hola','holamundo');
**/
function colorear($busq,$cadena){
	$size='12px';
	 $nombrex= str_replace(strtolower($busq),'<font id="resf1'.date('is').'" size="-1" color="#FF0000" style="background-color:#D9E7F8; font-size:'.$size.';"><b>'.ucwords($busq).'</b></font>',strtolower($cadena));
	 return $nombrex=ucwords($nombrex);
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
  Funcion mayus
  Esta Funcion recibe como parametros:
$texto: cadena de texto a pasar a mayuscula

	Ejemplo:
      echo $this->Interfaz->mayus('holamundo');
**/
function mayus($texto) { 
	return strtr(strtoupper($texto),"àèìòùáéíóúçñäëïöü","ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ"); 
}



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion formulario
  Esta Funcion recibe como parametros:
$nombre: nombre del Formulario
$ruta: Direccion de la funcion que sera llamada al momento de enviar el formulario
$update: Identificador del elemento (div o spam preferiblemente) donde se visualizara el resultado
$value: Texto del Boton
$pre: Pregunta a realizar antes de enviar el formulario
$tipo: es opcional Tipo de msj cargando a mostrar (cargando o guardando)
Nota: es opcional Como el formulario debe llevar una etiqueta de apertura y una de cierre, se debe llamar a la funcion dependiendo de lo que se desee Usar
	Ejemplo:
			Para Iniciar el Formulario
      	echo $this->Interfaz->formulario('nombre');
						esto creara <form='nombre' id='nombre'>
			Para finalizar el Formulario
      	echo $this->Interfaz->formulario('nombre','TuControlador/Tu_Funcion','div_guardar','Guardar');
      	echo $this->Interfaz->formulario('nombre','TuControlador/Tu_Funcion','div_guardar','Guardar','tu pregunta?','guardando');
						esto creara <input type='button' value='Guardar'>
						</form>
**/
function formulario($nombre=null,$ruta=null,$update='div_error_evento',$value="Guardar",$pre=null,$tipo='guardando')
{
	if($ruta==null)
	{
		$valor="<form name='$nombre' id='$nombre'>";
	}
	else
	{
		if(isset($pre))
		{
			$valor="<input type='button' id='abuttonarchivo' value='$value' style=\"cursor:pointer;height:23px; width: 135px;\" 
			class=\"x-btn-default-small x-noicon x-btn-noicon x-btn-default-small-noicon x-btn-center\"
			Onclick=\"EnviaFormularioPregunta('$ruta','$update','$nombre','$pre','$tipo');\" />";
		}
		else
		{
			/*
			$valor="<div class='x-docked-bottom'>
			<input id='guardandoform' type='button' value='$value' onclick=\"EnviaFormulario('$update','$ruta','$nombre');\"  />
			</div>";
			*/
			$valor="<input type='button' id='abuttonarchivo' value='$value' style=\"cursor:pointer;height:23px; width: 135px;\" 
			class=\"x-btn-default-small x-noicon x-btn-noicon x-btn-default-small-noicon x-btn-center\"
			onclick=\"EnviaFormulario('$update','$ruta','$nombre','$tipo');\" />";
		}
		$valor.="</form>";
	//class='x-btn x-box-item x-toolbar-item x-btn-default-small x-noicon x-btn-noicon x-btn-default-small-noicon x-btn-center'
	}
	return $valor;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion ajax
  Esta Funcion recibe como parametros:
$ruta: Direccion de la funcion que sera llamada
$update: Identificador del elemento (div o spam preferiblemente) donde se visualizara el resultado
$valores: Es un arreglo opcional para indicar que valores se llevara, en este se indica los identificadores unicos(ID) de cada uno de los campos a enviar, el array debe tener el siguiente formato $array('nombre','apellido')
$confirmar: Es un arreglo opcional con dos indices el primero es para indicar el identificador sobre el cual se debe hacer clik para levantar la pregunta (Comfirm) y el segundo parametro es la pregunta que se desea realizar, el arreglo debe estar de la siguiente manera $pregunta=array('id_fuente','Pregunta a realizar?')
Nota: Esta funcion devuelve solo el llamado para su uso debe estar complementado con otro elemento
	Ejemplo:
      	$evento= $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar');
      	$evento= $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar',array('div1','div2','div3','div4'));
				$evento= $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar',array('div1','div2','div3','div4'),array('div_fuente','Tu Pregunta?'));
				$evento= $this->Interfaz->ajax('TuControlador/tu_funcion',NULL,array('div_fuente','Tu Pregunta?'));	
				echo "<a onclick='$evento'>	
**/
function ajax($ruta=null,$update='div_error_evento',$valores=null,$confirmar=array()){
/*
	if($valores!=null){ $valor="ajax('$ruta','$update','".implode(',', $valores)."');"; }
	else{ $valor="ajax('$ruta','$update');"; }
	if(isset($confirmar[0]) && isset($confirmar[1]))
	{
		$alert=" Ext.onReady(function(){
		    Ext.get('".$confirmar[0]."').on('click', function(e){
		        Ext.MessageBox.confirm('Confirmar', '".$confirmar[1]."', mifuncion);
		    });
		    function mifuncion(btn){
				if(btn=='yes'){".$valor."}
			};
		});";
	}
	else
	{
		$alert=$valor;
	}
*/
	if(isset($confirmar[0]) && isset($confirmar[1]))
	{
		if($valores!=null)
		{
				$valor="ajax_pregunta('$ruta','$update','".$confirmar[1]."','".implode(',', $valores)."');";
		}
		else
		{ 
				$valor="ajax_pregunta('$ruta','$update','".$confirmar[1]."');";
		}
	}
	else
	{
		if($valores!=null)
		{
				$valor="ajax('$ruta','$update','".implode(',', $valores)."');";
		}
		else
		{ 
				$valor="ajax('$ruta','$update');";
		}
	}
	$alert=$valor;
	return $alert;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion ajaxsimple
  Esta Funcion recibe como parametros:
$ruta: Direccion de la funcion que sera llamada
$update: Identificador del elemento (div o spam preferiblemente) donde se visualizara el resultado
$valores: Es un arreglo opcional para indicar que valores se llevara, en este se indica los identificadores unicos(ID) de cada uno de los campos a enviar, el array debe tener el siguiente formato $array('nombre','apellido')
$confirmar: Es un arreglo opcional con dos indices el primero es para indicar el identificador sobre el cual se debe hacer clik para levantar la pregunta (Comfirm) y el segundo parametro es la pregunta que se desea realizar, el arreglo debe estar de la siguiente manera $pregunta=array('id_fuente','Pregunta az realizar?')

	Ejemplo:
      	echo $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar');
      	echo $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar',array('div1','div2','div3','div4'));
				echo $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar',array('div1','div2','div3','div4'),array('div_fuente','Tu Pregunta?'));
				echo $this->Interfaz->ajax('TuControlador/tu_funcion',NULL,array('div_fuente','Tu Pregunta?'));		
**/
function ajaxsimple($ruta=null,$update='div_error_evento',$valores=null,$confirmar=null){
	if($valores!=null){
		$valor="ajaxsimple('$ruta','$update','".implode(',', $valores)."');";
	}else{ 
		$valor="ajaxsimple('$ruta','$update');";
	}

	if(isset($confirmar[0]) && isset($confirmar[1]))
	{
		$alert="<script type='text/javascript'>
		Ext.require([
    		'Ext.window.MessageBox',
		    'Ext.tip.*'
			]);

		Ext.onReady(function(){
    		Ext.get('".$confirmar[0]."').on('click', function(e){
        		Ext.MessageBox.confirm('Confirmar', '".$confirmar[1]."', mifuncion);
    			});
				function mifuncion(btn){
				if(btn=='yes'){".$valor." }
			};
		});
		</script>
		";
	}
	else
	{
		$alert=$valor;
	}

	return $alert;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion windowopen
$ruta= ruta a montar
$img= src de la imagen a monstrar en el <a heref
$width= tamaño en width de la ventana por defecto esta en 900px
$height= tamaño en height de la ventana por defecto esta en 600px
	Nota: esta permite hacer un window.open javascritp
Ejemplo:
        echo $this->Json->windowopen('/Tucontrolador/tufuncion','/img/foto.png',900,600);
        echo $this->Json->windowopen('/Tucontrolador/tufuncion','/img/foto.png');
**/
function windowopen($ruta,$img,$width=900,$height=600) {
	$valor="<a href=\"$ruta\" onClick=\"window.open(this.href,\"\",\"width=$width,height=$height\"); return false;\" style=\"text-decoration:none;\">".$img."</a>";
	return $valor;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion checkbox
$id= identificador unico del elemento
$checked= true ó 1 para dejar activo el checked
$otros: array para otros atributos validos para un checkbox, ejemplo onclick, onfocus...
Ejemplo:
        echo $this->Interfaz->checkbox('miid',1,array('onclick'=>"alert('holamundo')"));
        echo $this->Interfaz->checkbox('miid');
**/
function checkbox($id,$checked=false,$otros=array()){
	if($checked===true or $checked===1)$checked=true;
	else $checked=false;
	if(count($otros)>0){
		$otros['id']=$id;
		$otros['label']=false;
		$otros['checked']=$checked;
		$otros['div']=false;
		$otros['error']=false;
		$otros['class']= (empty($otros['class'])) ? 'inputn' : $otros['class'];
		$otros['hiddenField']=(isset($otros['hiddenField'])) ? $otros['hiddenField'] : 'false';
		return $this->Form->checkbox($id, $otros);
	}
	else{
		return $this->Form->checkbox($id, array('id' => $id, 'label' => false, 'checked'=>$checked, 'div' => false, 'error' => false, 'class' => 'inputn','hiddenField'=>'false'));
	}
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion radio
$id= identificador unico del elemento
$opcion= es un array que contiene el indice o valor a montar en cada input radio 
$v: valor seleccionado por defecto del input radio
$otros: es un array que contiene otros atributos validos para un input radio
Nota: para usar esta función su consulta debe ser por un “find” con la opción “all” de lo contrario el programador debe armar su propio array();

Ejemplo:
			$options = array(1=>array('A' => 'A'),2=>array('B' => 'B'),3=>array('C' => 'C'),4=>array('D' => 'D'));
			echo $this->Interfaz->radio('miid', $options[1], 'B');
			echo $this->Interfaz->radio('miid', $options[2], 'B');
			echo $this->Interfaz->radio('miid', $options[3], 'B');
			echo $this->Interfaz->radio('miid', $options[4], 'B',array('onclick'=>"alert('mensaje')"));
**/
function radio($id,$opcion=NULL,$v=NULL,$otros=NULL){
	foreach ($opcion as $key => $value) {
		$opcion[$key]='';
	}
	if(count($otros)>0)
	{
		$otros['legend']=false;
		if(isset($v))$otros['value']=$v;
	}
	else
	{
		$otros['legend']=false;
		if(isset($v))$otros['value']=$v;
	}
	$otros['hiddenField']=(isset($otros['hiddenField'])) ? $otros['hiddenField'] : 'false';
	return $this->Form->radio($id, $opcion, $otros);
}


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion inputid
esta funcion permite crear un campo oculto y encripta el valor pasado como parametro
$nombre= identificador unico del elemento
$value= valor que tendar en campo oculto 

Ejemplo:
			echo $this->Interfaz->inputid('miid', 'valor');
		
**/
function inputid($nombre,$value)
{
	$value=$this->id($value);
	return $this->inputfinal($nombre,$value);
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion inputoculto
esta funcion permite crear un campo oculto o tipo hidden
$nombre= identificador unico del elemento
$value= valor que tendar en campo oculto 

Ejemplo:
			echo $this->Interfaz->inputoculto('miid', 'valor');
		
**/
function inputoculto($nombre,$value)
{
	return $this->inputfinal($nombre,$value);
}

function inputfinal($nombre,$value)
{
	$valor=$this->Form->input($nombre,array('id'=>$nombre,'value'=>$value,'readonly'=>true,'label'=>false,'type'=>'hidden','div'=>false,'error'=>false,'size'=>2,'class'=>'inputnonly','maxlength'=>0));
	return $valor;
}



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
  Funcion input_fecha
  Esta Funcion recibe como parametros:
$nombre: nombre del input 
$destino: Id con el que sera recibido en el metodo
$value: valor por defecto en el campo
$readonly: readonly valores 0 y 1 para su uso
$requerido: si es 1 este campo es requerido
$texto:ayuda Json texto descriptivo
$placeholder= mensaje que aparecera en el campo

$otros=arreglo de otros posibles atributos por ejemplo array('OnClick'=>"alert('holamundo')")
Nota el evente onkeyup,onfocus no puede ser utilizado en ningun caso
	Ejemplo:

     	echo $this->Interfaz->input_fecha('fecha_i_cal_','fecha','',0,1,'Fecha de Nacimiento del Funcionario');
		$has=date('d-m-').(date('Y')-18);
		$des=date('d-m-').(date('Y')-120);
		echo $this->Interfaz->calendario('fecha_i_cal_',null,$des,$has);
**/
function input_fecha($nombre=null,$destino=null,$value=null,$readonly=0,$requerido=1,$texto='nada',$placeholder='',$otros=array(),$pre='nada')
{
	if(!isset($nombre))$nombre='nombre_campo';
	if($nombre!=null or $nombre!='nombre_campo')
	{
		if($readonly===1) $readonly=true;else $readonly=false;
		$valor="";
		if($texto!='nada') $this->Json->tipsayuda($nombre,$texto);
		if($pre=='nada') $mids=$nombre."_em";
		else $mids=$nombre.$pre."_em";
		if(isset($value) and $value!='')
		{
			$value=explode('-',$value); $value=$value[2].'-'.$value[1].'-'.$value[0];
		}
		if(count($otros)>0)
		{
			$otros['type']='text';
			$otros['maxlength']=10;
			$otros['onfocus']="return liacamposfn('$nombre','$pre');";
			$otros['id']=$nombre;
			$otros['value']=$value;
			$otros['readonly']=$readonly;
			$otros['label']=false;
			$otros['error']=false;
			$otros['size']=$tamanio;
			$otros['class']=$class;
			$otros['maxlength']=$maximo;
			$otros['placeholder']=$placeholder;
			$otros['onkeyup']="return validate(event,this.value,'$tipo','$nombre','$pre');";
			$valor=$this->Form->input($nombre,$otros).' <img id="calendariolevantar" src="/img/iconos/calendarios/calendario2.ico" border="0" align="absmiddle" style="cursor:pointer;">';
		}
		else
		{
			$valor=$this->Form->input($nombre,array('id'=>$nombre,'value'=>$value,'readonly'=>$readonly,'label'=>false,'type'=>'text','div'=>false,'error'=>false,'size'=>11,'class'=>'inputn','maxlength'=>10,'onkeyup'=>"return validate(event,this.value,'fecha','$nombre','$pre');", 'placeholder'=>$placeholder,'onfocus'=>"return liacamposfn('$nombre','$pre');")).' <img id="'.$nombre.'calendariolevantar" src="/img/iconos/calendarios/calendario2.ico" border="0" align="absmiddle" style="cursor:pointer;">';
		}
		$em=$this->tipsrequerido($requerido,$nombre);
		$valor.="$em<span id='".$mids."'>&nbsp;</span>".$this->Form->input($destino,array('id'=>$destino,'type'=>'hidden','value'=>$nombre));
	}
	return $valor;
}


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion evento
esta funcion permite crear un evento para ser incluido en el paginador
$div= identificador unico del elemento
$accion= Resultado del llamado a la funcion url 
$img= Imagen o Texto que se visualizara en la Vista
Ejemplo:
	echo $this->Interfaz->evento('divpregunta', 'evento o accion','imagen a mostrar');
**/
function evento($div=null,$accion=null,$img=null)
{
	if(isset($div) && isset($accion) && isset($img))
	{
		$div1=$div."xxx";
		return "<a style=\'cursor:pointer;\' align=\'left\' id=\'$div\' onclick=\'".$accion."\'>".$img."</a>";
	}
	else return null;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion url
esta funcion permite crear un evento para ser incluido en el paginador
$url= Direccion url a ser llamada
$carga= div donde se cargara la url llamada 
$valores= es un arreglo de la forma array('id1','id2'....) representan todos los valores que seran enviados al metodo llamado en caso de no necesitarlo es null
$pregunta= es un arreglo de la forma array('divdepregunta','tu pregunta') en caso de no necesitarlo el valor es null
$permiso= variable definida que permite determinar si un usuario tiene o no permisos de realizar la accion
Ejemplo:
			$eve_edit=$this->Interfaz->url("controlador/metodo","divvista"null,null,0);// No tiene Permiso
			$eve_edit=$this->Interfaz->url("controlador/metodo","divvista",array('v1','v2','v3'),null,1); // Tiene Permiso
			$eve_edit=$this->Interfaz->url("controlador/metodo","divvista",null,array("divpregunta","¿tu Pregunta?"),0); // No tiene Permiso
			$eve_edit=$this->Interfaz->url("controlador/metodo","divvista",rray('v1','v2','v3'),array("divpregunta","¿tu Pregunta?"),1); // Tiene Permiso
		
**/
function url($url=null,$carg=null,$valores=null,$pregunta=null,$permiso=1)
{
	if(isset($permiso) && $permiso==1)
	{
		if(!empty($url) && !empty($carg))
		{
			if(!empty($valores) && !empty($pregunta)) return str_replace("'",'"',$this->ajax($url,$carg,$valores,array($pregunta[0],$pregunta[1])));
			else if(!empty($valores) && empty($pregunta)) return str_replace("'",'"',$this->ajax($url,$carg,$valores));
			else if(empty($valores) && !empty($pregunta)) return str_replace("'",'"',$this->ajax($url,$carg,null,array($pregunta[0],$pregunta[1])));
			else return str_replace("'",'"',$this->ajax($url,$carg));
		}
		else return null;
	}
	else
	{
		return $this->url_permiso($carg);//str_replace("'",'"',$this->ajax(PRINCIPAL."/permiso/".$carg,$carg));
	}
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion url_permiso
esta funcion permite crear el evento sin permiso para ser incluido en el paginador
$carga= div donde se cargara la vista sin permiso 

Ejemplo:
	$eve_edit=$this->Interfaz->url("divvista");	
**/
function url_permiso($carg=null)
{
	//if(empty($carg) || $carg== DLOAD) $carg=DOCULTO;
	//return str_replace("'",'"',$this->ajax(PRINCIPAL."/permiso/".$carg,$carg));
        return 'sin_permiso();';
}

function editor_web($tipo_vista=1,$titulo='EDITOR DE CONTENIDOS WEB'){
	if($tipo_vista==1){
		$this->Vista->iframe(DVENTANA,DVENTANA,$titulo,null,MKTIME,'editor',0,'80%','90%');
	}else if($tipo_vista==0){
		echo '<iframe id="aa'.MKTIME.'" src="'.editor.'" width="100%" height="100%" border="0" frameborder="0"></iframe>';
	}
}


/////////////////////////////////////////////////////////// ESTAS FUNCIONES ESTAN POR REVICION //////////////////////////////////////////////

function leermas($d='',$z=0,$cant=25){
	$canf=strlen($d);
	$cans=($cant-1);
	if($canf>$cant){
		$valor="
		<div id='".$z."_datosadicionales' style='display:none; float:left;'>".mb_substr($d,0,$canf)."
		<font size='1px' color='#CCCCCC' onclick=\"leermas('0','$z');\">  ...ocultar</font>
		<br /><br />
		</div>
		<div id='".$z."_leermasx' style='float:left;'>".mb_substr($d,0,$cant)."
		<font size='1px' color='#CCCCCC'  onclick=\"leermas('1','$z');\">  ...leer</font>
		</div>
		";
	}
	else{
		$valor=mb_substr($d,0,$cant);
	}
	return $valor;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
PRIVADA tipsrequerido
**/
function tipsrequerido($requerido,$nombre){
	$divds=$nombre."_requerido";
	if($requerido==1)$em="<em onmouseover=\"requeridoup('$divds');\" onmouseout=\"requeridodown('$divds');\"><font color='red' style='cursor:w-resize'>&nbsp;&nbsp;*&nbsp;&nbsp;</font></em>
	<div id='$divds' style='z-index: 19000; width: 140px; height: 27px; box-shadow: 0px 0px 4px 0px rgb(136, 136, 136); display: none;'  class='x-gray x-body x-gecko x-linux x-reset x-css-shadow'>
	<div style='height: 31px; z-index: 19001; width: 140px;' class='x-form-invalid-tip x-form-invalid-tip-default x-layer'>
	<div style='left: 0px; top: 0px; width: 290px;' class='x-form-invalid-tip-body'>
	<ul><li class='last'>Campo Requerido</li></ul>
	</div></div></div>";
	else$em='';
	return $em;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion ajaxbuscador
  Esta Funcion recibe como parametros:

**/
function ajaxbuscador($ruta=null,$update='div_error_evento',$array=null){
	if($array!=null){
		$valor="ajaxbuscador(event,'$ruta','$update','".implode(',', $array)."');";
	}else{ 
		$valor="ajaxbuscador(event,'$ruta','$update');";
	}
	$alert=$valor;
	return $alert;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion cedulaguion
  Esta Funcion recibe como parametros:

**/
function cedulaguion($cedula){
	return substr($cedula, 0,1)."-".substr($cedula, 1);
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion cedula_formateada
  Esta Funcion recibe como parametros:

**/
function cedula_formateada($cedula){
		$ced=explode('-', $cedula);
		if(strlen($ced[1]) < 9) $ced[1]= str_pad($ced[1],9,'0',STR_PAD_LEFT);
		return $ced[0].$ced[1];
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion boton
  Esta Funcion recibe como parametros:
$nombre: Valor del boton
$ruta: Direccion de la funcion que sera llamada al momento de precionar el boton
$update: Identificador del elemento (div o spam preferiblemente) donde se visualizara el resultado
$valores: arreglo de los id que seran enviados como valores
$pre: Pregunta a realizar antes de hacer el llamdo a la funcion
$width: Tamaño del boton
    Ejemplo:
      	echo $this->Interfaz->boton('nombre','TuControlador/Tu_Funcion','div_actualizar');
      	echo $this->Interfaz->boton('nombre','TuControlador/Tu_Funcion','div_actualizar',array('id1,'id2','idn'));
      	echo $this->Interfaz->boton('nombre','TuControlador/Tu_Funcion','div_actualizar',array('id1,'id2','idn'),array('div','¿pregunta?'));
      	echo $this->Interfaz->boton('nombre','TuControlador/Tu_Funcion','div_actualizar',null,array('div','¿pregunta?'));
**/
function boton($nombre='Boton',$ruta,$update='div_error_evento',$valores=null,$pre=array(),$width='135px')
{
	$evento=$this->ajax($ruta,$update,$valores,$pre);
	$valor="<input type='button' id='abuttonarchivo' value='$nombre' style=\"cursor:pointer;height:23px; width: $width;\" 
			class=\"x-btn-default-small x-noicon x-btn-noicon x-btn-default-small-noicon x-btn-center\"
			onclick=\"$evento\" />";		
	return $valor;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion boton
  Esta Funcion recibe como parametros:
$nombre: Valor del boton
$ruta: Direccion de la funcion que sera llamada al momento de precionar el boton
$update: Identificador del elemento (div o spam preferiblemente) donde se visualizara el resultado
$valores: arreglo de los id que seran enviados como valores
$pre: Pregunta a realizar antes de hacer el llamdo a la funcion
$width: Tamaño del boton
    Ejemplo:
      	echo $this->Interfaz->boton('nombre','TuControlador/Tu_Funcion','div_actualizar');
      	echo $this->Interfaz->boton('nombre','TuControlador/Tu_Funcion','div_actualizar',array('id1,'id2','idn'));
      	echo $this->Interfaz->boton('nombre','TuControlador/Tu_Funcion','div_actualizar',array('id1,'id2','idn'),array('div','¿pregunta?'));
      	echo $this->Interfaz->boton('nombre','TuControlador/Tu_Funcion','div_actualizar',null,array('div','¿pregunta?'));
**/
function boton_simple($id, $value='Boton', $params=array())
{
    $output = '';
    $arrId = explode('.', $id);
    if (count($arrId) > 1){
        $name = $arrId[0];
        for($i = 1; $i < count($arrId); $i++){
            $name .= '[' . $arrId[$i] . ']';
        }
    }else
        $name = $id;
    
    $params = array_merge(array('type' => 'button', 'style' => 'cursor:pointer;height:23px;width:135px;', 'class' => 'x-btn-default-small x-noicon x-btn-noicon x-btn-default-small-noicon x-btn-center'), $params);

    $newId = (isset($params['id'])) ? $params['id'] : $name;
    $attribs = '';

    foreach($params as $key => $text) {
        if($key == 'src')
            $attribs .= "$key = '../images/$text'";
        else
            $attribs .= "$key = \"$text\"";
    }

    $output .= '<input type="'.$params['type'].'" id="'.$newId.'" name="'.$name.'" value="'.$value.'" '.$attribs.'/>';
    return $output;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * 
 * 
**/
function mayuscula($t)
{
	return trim(addslashes(strtr(strtoupper($t), "àèìòùáéíóúçñäëïöü", "ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ")));
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion boton_ventana
  Esta Funcion recibe como parametros:
$nombre: Valor del boton
$ruta: Direccion de la funcion que sera llamada al momento de precionar el boton

$width: Tamaño del boton
    Ejemplo:
      	$this->Interfaz->boton_ventana('Excel','Sigesp/reporte_excel_reporteador/1','100px');
**/
function boton_ventana($nombre,$ruta,$width='135px')
{
	$evento='onClick=window.open(\''.$ruta.'\',\'\',\'900,600\'); return false;';
	$valor="<input type='button' id='abuttonarchivo' value='$nombre' style=\"cursor:pointer;height:23px; width: $width;\" 
			class=\"x-btn-default-small x-noicon x-btn-noicon x-btn-default-small-noicon x-btn-center\"
			$evento />";		
	return $valor;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion evento_reporte
 esta funcion permite crear un evento para ser incluido en el paginador
$div= identificador unico del elemento
$accion= Resultado del llamado a la funcion url 
$img= Imagen o Texto que se visualizara en la Vista
$permiso= Permiso del Usuario
Ejemplo:
	echo $this->Interfaz->evento('divpregunta', 'evento o accion','imagen a mostrar');
**/
function evento_reporte($div=null,$accion=null,$img=null, $permiso=0)
{
	if(isset($div) && isset($accion) && isset($img))
	{
		if($permiso==1) $evento="onClick=\\'window.open(\"$accion\",\"\",\"900,600\");\\'";
		else {
			$per= str_replace("'",'"',$this->ajax(PRINCIPAL.'/permiso/'.DOCULTO,DOCULTO));
			$evento="onclick=\\'$per\\'";
		}
		return "<a style=\'cursor:pointer;\' align=\'left\' id=\'$div\' $evento >".$img."</a>";
	} 
	else return null;
}



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
Funcion calcular_edad
  	Esta Funcion recibe como parametros:
	$fecha: fecha de nacimiento en formato Y-m-d
	Ejemplo:
      	$this->Interfaz->calcular_edad('1980-01-01');
**/
public function calcular_edad($fecha=null){
     $edad=0;
     if(!empty($fecha)){
        $edad= floor((time() - strtotime($fecha)) / 31556926);
     }
     return $edad;
}

	public function limpiar_campo($campo){
		$nombre = str_replace('ÃÂ','Ñ', $campo);
		$nombre = str_replace('Ã','Ñ', $nombre);
		$nombre = str_replace('Ã','Ñ', $nombre);
		$nombre = str_replace('Ã±','Ñ', $nombre);
		$nombre = str_replace('Ã?','Ñ', $nombre);
		$nombre = str_replace('Ã','Á', $nombre);
		$nombre = str_replace('Ã','Á', $nombre);
		$nombre = str_replace('Ã','É', $nombre);
		$nombre = str_replace('Ã','É', $nombre);
		$nombre = str_replace('Ã©','É', $nombre);
		$nombre = str_replace('Ã','Í', $nombre);
		$nombre = str_replace('Ã','Ó', $nombre);
		$nombre = str_replace('Ã','Ó', $nombre);
		$nombre = str_replace('Ã','Ó', $nombre);
		$nombre = str_replace('Ã','Ó', $nombre);
		$nombre = str_replace('Ã³','Ó', $nombre);
		$nombre = str_replace('Ã','Ú', $nombre);
		$nombre = str_replace('Ã ','Ñ', $nombre);
		$nombre = utf8_encode($nombre);
		$nombre = strtoupper($nombre);
		return $nombre;
	}

}
?>
